package br.usjt.servico;

public abstract class DAOFactory {
	//lista de tipos dao suportados por esta fabrica
	public static final int MYSQL=1;
	public static final int POSTGRESQL=2;
	
	//havera um metodo para cada DAO que pode ser criado
	//a fabrica concreta devera implementar estes metodos
	public abstract IClienteDAO getClienteDAO();
	public abstract IFilmeDAO getFilmeDAO();
	public abstract IUsuarioDAO getUsuarioDAO();
	//o metodo eh estatico pois nao ha necessidade de criar um objeto para usar 
	//um metodo de criacao
	public static DAOFactory getDAOFactory (int umaFabrica){
		switch (umaFabrica){
			case MYSQL:
				return new MySQLDAOFactory();
			case POSTGRESQL:
				return new PostgreSQLDAOFactory();
			default:
			    return null;
		}
	}
}
